package com.qlk.odcinterface.service;

import java.util.List;

import com.qlk.odcinterface.domain.PmsCoupon;
import com.qlk.odcinterface.domain.PmsCouponChannel;
import com.qlk.odcinterface.domain.PmsCouponItem;
import com.qlk.odcinterface.domain.query.PmsCouponQuery;
import com.qlk.odcinterface.sdk.api.request.PmsCouponRequest;
import com.qlk.common.utils.page.PageUtil;

/**
 * PmsCouponService接口
 * 
 * @author zhaoyanan
 * @version 2016-4-14 14:11:36
 * 
 */
public interface PmsCouponService {

    /**
     * 批量增加对象信息
     * 
     * @param pmsCouponList
     * @return
     */
    public boolean insert(List<PmsCoupon> pmsCouponList);

    /**
     * 单个增加对象信息
     * 
     * @param pmsCoupon
     * @return
     */
    public boolean insert(PmsCoupon pmsCoupon);

    /**
     * 更新 对象信息
     * 
     * @param pmsCoupon
     *            对象信息对象
     * @return false：失败 true：成功
     */
    public boolean update(PmsCoupon pmsCoupon);

    /**
     * 根据查询Bean获取对象集合，无翻页
     * 
     * @param queryBean
     * @return
     */
    public List<PmsCoupon> queryPmsCouponList(PmsCouponQuery queryBean);

    /**
     * 根据查询Bean获取对象集合，带翻页
     * 
     * @param queryBean
     * @param pageUtil
     * @return
     */
    public List<PmsCoupon> queryPmsCouponListWithPage(PmsCouponQuery queryBean,
                                                      PageUtil pageUtil);

    /**
     * 根据主键删除对象信息，该处做的是逻辑删除
     * 
     * @param pmsCoupon
     *            　
     * @return
     */
    public boolean delete(PmsCoupon pmsCoupon);

    /**
     * 根据主键获取对象信息
     * 
     * @param id
     *            主键字段
     * @return 对象信息
     */
    public PmsCoupon getPmsCouponById(Long id);

    /**
     * 根据主键集合批量删除对象信息，该处做的是逻辑删除
     * 
     * @param pmsCoupons
     *            PmsCoupon集合
     * @return
     */
    public boolean delete(PmsCoupon[] pmsCoupons);
    
    /**
     * odc优惠券信息更新
     * @param isStatusUpdate
     * @param items
     * @param pmsCoupon
     * @param preStatus 
     * @return
     */
    public boolean syncPmsCoupon(Integer isStatusUpdate,PmsCouponRequest pmsCoupon,Integer preStatus);
}
